préserver et ouvrir ses codes sources et logiciels

Printemps de la donnée 2024

Damien Belvèze

Université de Rennes

Jun 13, 2024

If you ever find yourself in an award committee, or a grant funding panel, or a search committee, may you voice these thoughts out loud. Software development contributions are immensely valuable.

Software developed by PhD students and postdocs without any formal training has gone on to save academia many millions on software licenses, in addition to enabling research that was not possible otherwise.

I wish this had been quantified.

Let s not take it for granted.

(Albert Cardona) 📓 Cardona (2024)

En 2021, seulement 20% des publications donnaient accès au code source sous-jacent 📓 Badolato (2024)

Le code source pour la recherche est important à conserver, partager et rendre visible pour les raisons suivantes:

  • ça permet d’assurer la reproductibilité de l’expérience
  • ça permet d’économiser des heures de développement
  • ça permet de réaliser du code adapté à une situation qui ne pourrait pas être développé par le marché

code source ?

Algorithme : décrit le déroulé pour la résolution d’un problème posé.

Code source : mise en oeuvre et formalisation de l’algorithme dans un langage informatique (par exemple python, C++, java …). C’est un (ou plusieurs) fichier(s) texte.

Exécutable : traduction du code source (en général via un compilateur ou un interpréteur) en code binaire compréhensible par l’ordinateur.

Logiciel : en général, l’ensemble global comprenant le code source et/ou l’exécutable, et le plus souvent la documentation, des exemples d’utilisation, éventuellement les dépendances … et évidemment la licence associée

(source : Violaine Louvet 📓 Louvet (2023) )

Forges / archives

  • la forge : utile pour maintenir du code, mais pas pour le conserver
  • l’archive Software Heritage : utile pour conserver du code, mais pas pour le rendre visible
  • l’archive HAL : utile pour donner accès au code, en lien avec la publication

Pourquoi utiliser HAL pour diffuser du code source ?

de la Forge à HAL en passant par Software Heritage

📓 Louvet (2023)

Quels fichiers associer : 1. Le README

★ Obligatoire:
○ Nom du logiciel / projet
○ Description du projet

★ Recommandé:
○ Site du projet
○ Lien vers la documentation
○ Contact & support
○ Liste des fonctionnalités
○ Environnement de développement
■ build, installation, requirements
■ comment exécuter le code

Quels fichiers associer : 1. Le README

★ Possible:
○ Usage - comment utiliser le code
○ Nouvelles récentes du projet
○ Visuels du logiciel

Quels fichiers associer : 2. Le fichier codemeta

  • Le codemeta est crucial pour l’interopérabilité entre les systèmes

  • Il peut être généré facilement au moyen d’un formulaire

  • Exemple de codemeta

Quels fichiers associer : 3. fichiers relatifs à la réplicabilité computationnelle

  • env/renv 📓 Wickham & Hushely (n.d.) (environnements virtuels)
  • requirements
  • images Docker et dockerfiles

schéma de Renv

Archivage du code depuis la forge

le rôle du SHWID

  • identifiant unique et pérenne
  • interopérabilité SoftWare Heritage et HAL

Exemple de SWHID : swh:1:dir:2d5fbdaa6694717a7b6dde48e1b7946cb388a21f

Utilisation du SWHID dans HAL

démonstration avec la version preprod de HAL

Si le codemeta est bien formaté, il y a peu de métadonnées à ajouter

Crédits

Cet atelier est organisé par l’Atelier de la Donnée ARDoISE et financé par le Fonds National pour la Science Ouverte.

La présentation a été partiellement réaslisée à partir de la présentation de Jozefina Sadowska lors du Printemps de la Donnée 2024

le graphe central est produit par Cosma 📓 Perret et al. (2021/2024) le support de présentation est réalisé avec Quarto 📓 Quarto-Dev/Quarto-Cli (n.d.)

Références

Gif source code walking man sur gifer

Badolato, A.-M. (2024, June 3). Highlights of the “Software Pillar of Open Science” workshop. Ouvrir la Science. https://www.ouvrirlascience.fr/highlights-of-the-software-pillar-of-open-science-workshop
Cardona, A. (2024). If you ever find yourself in an award committee, or a grant funding panel, or a search committee, may you voice these thoughts out loud. Software development contributions are immensely valuable. Software developed by PhD students and postdocs without any formal training has gone on to save academia many millions on software licenses, in addition to enabling research that was not possible otherwise. I wish this had been quantified. Let’s not take it for granted. https://mathstodon.xyz/@albertcardona/112501189117668992
Louvet, V. (2023). Logiciels et codes sources, tour d’horizon. Cellule Data Grenoble Alpes. https://hal.science/hal-04173102/document
Perret, A., Brioudes, G., Borel, C., & Le Deuff, O. (2024). Cosma [Computer software]. https://github.com/graphlab-fr/cosma/ (Original work published 2021)
Quarto-dev/quarto-cli: Open-source scientific and technical publishing system built on Pandoc. (n.d.). [Computer software]. Retrieved June 9, 2024, from https://github.com/quarto-dev/quarto-cli
Wickham, H., & Hushely, K. (n.d.). Introduction to renv. Posit. Retrieved October 5, 2024, from https://rstudio.github.io/renv/articles/renv.html